const auth = require('../../utils/auth');

Page({
  data: {
    userInfo: null,
    userStats: {
      classCount: 0,
      studentCount: 0,
      homeworkCount: 0,
      noticeCount: 0,
      points: 0,
      todoCount: 0
    },
    refresherTriggered: false,
    loading: false,
    noMore: false
  },

  onLoad: function (options) {
    console.log('我的页面加载');
    this.checkLoginStatus();
    this.loadUserStats();
  },

  onShow: function () {
    console.log('我的页面显示');
    this.checkLoginStatus();
    this.loadUserStats();
  },

  // 下拉刷新
  async onRefresh() {
    console.log('开始下拉刷新');
    this.setData({
      refresherTriggered: true
    });

    try {
      // 重新加载用户信息和统计数据
      await this.loadUserStats();
      await this.loadUserInfo();
      
      wx.showToast({
        title: '刷新成功',
        icon: 'success',
        duration: 1000
      });
    } catch (error) {
      console.error('刷新失败:', error);
      wx.showToast({
        title: '刷新失败',
        icon: 'none'
      });
    } finally {
      this.setData({
        refresherTriggered: false
      });
    }
  },

  // 上拉加载更多
  async onLoadMore() {
    if (this.data.loading || this.data.noMore) {
      return;
    }

    console.log('开始上拉加载更多');
    this.setData({
      loading: true
    });

    try {
      // 模拟加载更多数据
      await this.loadMoreData();
    } catch (error) {
      console.error('加载更多失败:', error);
      wx.showToast({
        title: '加载失败',
        icon: 'none'
      });
    } finally {
      this.setData({
        loading: false
      });
    }
  },

  // 加载更多数据
  async loadMoreData() {
    return new Promise((resolve) => {
      setTimeout(() => {
        // 模拟加载更多数据
        const currentStats = this.data.userStats;
        const newStats = {
          ...currentStats,
          classCount: currentStats.classCount + Math.floor(Math.random() * 2),
          studentCount: currentStats.studentCount + Math.floor(Math.random() * 5),
          homeworkCount: currentStats.homeworkCount + Math.floor(Math.random() * 3),
          noticeCount: currentStats.noticeCount + Math.floor(Math.random() * 2),
          points: currentStats.points + Math.floor(Math.random() * 50),
          todoCount: currentStats.todoCount + Math.floor(Math.random() * 2)
        };

        this.setData({
          userStats: newStats,
          noMore: Math.random() > 0.7 // 70%概率没有更多数据
        });

        resolve();
      }, 1000);
    });
  },

  // 加载用户信息
  async loadUserInfo() {
    try {
      const userInfo = auth.getUserInfo();
      if (userInfo) {
        this.setData({
          userInfo: userInfo
        });
      }
    } catch (error) {
      console.error('加载用户信息失败:', error);
    }
  },

  // 检查登录状态
  checkLoginStatus() {
    if (!auth.isLoggedIn()) {
      console.log('用户未登录，跳转到登录页');
      auth.goToLogin();
      return;
    }
    
    const userInfo = auth.getUserInfo();
    this.setData({
      userInfo: userInfo
    });
    console.log('用户已登录:', userInfo);
  },

  // 加载用户统计数据
  async loadUserStats() {
    try {
      // 模拟从API获取统计数据
      const stats = {
        classCount: Math.floor(Math.random() * 5) + 1,
        studentCount: Math.floor(Math.random() * 20) + 25,
        homeworkCount: Math.floor(Math.random() * 20) + 10,
        noticeCount: Math.floor(Math.random() * 15) + 5,
        points: Math.floor(Math.random() * 1000) + 1000,
        todoCount: Math.floor(Math.random() * 8) + 1
      };
      
      this.setData({
        userStats: stats
      });
    } catch (error) {
      console.error('加载用户统计失败:', error);
    }
  },

  // 编辑个人资料
  editProfile() {
    wx.showToast({
      title: '编辑资料功能开发中',
      icon: 'none'
    });
  },

  // 个人信息
  goToProfile() {
    const userInfo = this.data.userInfo;
    wx.showActionSheet({
      itemList: ['查看详细信息', '编辑个人资料', '更换头像', '账号安全'],
      success: (res) => {
        const actions = ['查看详细信息', '编辑个人资料', '更换头像', '账号安全'];
        if (res.tapIndex === 0) {
          // 查看详细信息
          wx.showModal({
            title: '个人信息',
            content: `昵称：${userInfo.nickName || '未设置'}\nOpenID：${userInfo.openId || '未获取'}\n登录时间：${userInfo.createTime || '未知'}`,
            showCancel: false
          });
        } else {
          wx.showToast({
            title: `${actions[res.tapIndex]}功能开发中`,
            icon: 'none'
          });
        }
      }
    });
  },

  // 我的积分
  goToPoints() {
    wx.showModal({
      title: '我的积分',
      content: `当前积分：${this.data.userStats.points} 分\n\n积分可用于：\n• 兑换教学资源\n• 升级功能权限\n• 参与活动抽奖`,
      showCancel: false
    });
  },

  // 活动中心
  goToActivity() {
    wx.showToast({
      title: '活动中心功能开发中',
      icon: 'none'
    });
  },

  // 我的待办
  goToTodo() {
    wx.showModal({
      title: '我的待办',
      content: `待处理事项：${this.data.userStats.todoCount} 项\n\n• 批改数学作业 (2份)\n• 发布班级通知 (1条)\n• 查看学生打卡情况`,
      showCancel: false
    });
  },

  // 系统设置
  goToSettings() {
    wx.showActionSheet({
      itemList: ['通知设置', '隐私设置', '账号安全', '清除缓存'],
      success: (res) => {
        const actions = ['通知设置', '隐私设置', '账号安全', '清除缓存'];
        wx.showToast({
          title: `${actions[res.tapIndex]}功能开发中`,
          icon: 'none'
        });
      }
    });
  },

  // 帮助与反馈
  goToHelp() {
    wx.showModal({
      title: '帮助与反馈',
      content: '如有问题或建议，请联系：\n\n客服电话：400-123-4567\n邮箱：support@xueyitong.com\n工作时间：9:00-18:00',
      showCancel: false
    });
  },

  // 关于我们
  goToAbout() {
    wx.showModal({
      title: '关于我们',
      content: '学易通教师端 v1.0.0\n\n学易通致力于为教师提供智能化的教学管理工具，让教学更高效，让教育更美好。\n\n© 2024 学易通教育科技有限公司',
      showCancel: false
    });
  },

  // 隐私政策
  goToPrivacy() {
    wx.showToast({
      title: '隐私政策功能开发中',
      icon: 'none'
    });
  },

  // 服务条款
  goToTerms() {
    wx.showToast({
      title: '服务条款功能开发中',
      icon: 'none'
    });
  },

  // 检查更新
  checkUpdate() {
    wx.showLoading({
      title: '检查更新中...'
    });
    
    setTimeout(() => {
      wx.hideLoading();
      wx.showModal({
        title: '检查更新',
        content: '当前已是最新版本',
        showCancel: false
      });
    }, 2000);
  },

  // 清理缓存
  clearCache() {
    wx.showModal({
      title: '清理缓存',
      content: '确定要清理应用缓存吗？',
      success: (res) => {
        if (res.confirm) {
          wx.showLoading({
            title: '清理中...'
          });
          
          setTimeout(() => {
            wx.hideLoading();
            wx.showToast({
              title: '清理完成',
              icon: 'success'
            });
          }, 1500);
        }
      }
    });
  },

  // 退出登录
  logout() {
    wx.showModal({
      title: '退出登录',
      content: '确定要退出当前账号吗？',
      success: (res) => {
        if (res.confirm) {
          wx.showLoading({
            title: '退出中...'
          });
          
          setTimeout(() => {
            wx.hideLoading();
            wx.showToast({
              title: '已退出登录',
              icon: 'success'
            });
            
            // 清除用户信息并跳转到登录页
            auth.logout();
          }, 1000);
        }
      }
    });
  }
})

